//
//  AYApiRequest.m
//  SuiXin
//
//  Created by mac on 2023/10/16.
//

#import "AYApiRequest.h"
#import "AYHttpClient.h"

#define CREATE_GET(url, PRAMS, PKG) \
[AYHttpClient get:url parameters:PRAMS success:^(NSURLSessionDataTask * _Nonnull dataTask, id  _Nonnull responseObjcet) {\
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObjcet options:NSJSONReadingMutableLeaves error:nil];\
NSError *error = nil;\
if (kDictIsEmpty(dic) == NO) {\
PKG *model = [[PKG alloc]initWithString:[AYTool convertToJSONData:dic] error:&error];\
    if (error == nil) {\
success(model);\
NSLog(@"%@", dic);\
    }\
    else {\
        failure(-1,@"JSON解析错误");\
        Log(@"JSON解析错误");\
    }\
}\
} failure:^(NSURLSessionDataTask * _Nonnull dataTask, NSError * _Nonnull error) {\
if ([AFNetworkReachabilityManager sharedManager].reachable) {\
    failure(-1,@"请求失败,请检查网络连接");\
}\
else{\
    Log(@"%@",error);\
    failure(-1,@"");\
}\
}];\

#define CREATE_POST(url, PRAMS, PKG) \
[AYHttpClient post:url parameters:PRAMS success:^(NSURLSessionDataTask * _Nonnull dataTask, id  _Nonnull responseObjcet) {\
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObjcet options:NSJSONReadingMutableLeaves error:nil];\
Log(@"HttpClientResponseObject-->%@",dic);\
NSError *error = nil;\
if (kDictIsEmpty(dic) == NO) {\
PKG *model = [[PKG alloc]initWithString:[AYTool convertToJSONData:dic] error:&error];\
    if (error == nil) {\
        success(model);\
        Log(@"%@",model.msg);\
    }\
    else {\
        failure(-1,@"JSON解析错误");\
        Log(@"JSON解析错误");\
    }\
}\
} failure:^(NSURLSessionDataTask * _Nonnull dataTask, NSError * _Nonnull error) {\
if ([AFNetworkReachabilityManager sharedManager].reachable) {\
    failure(-1,@"请求失败,请检查网络连接");\
}\
else{\
    Log(@"%@",error);\
    failure(-1,@"");\
}\
}];\

#define CREATE_POST_FILE(url, PRAMS, PKG, fileParam, fileData) \
[AYHttpClient post:url parameters:PRAMS andFileParams:fileParam andFileData:fileData success:^(NSURLSessionDataTask * _Nonnull dataTask, id  _Nonnull responseObjcet) {\
    NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:(NSData *)responseObjcet options:NSJSONReadingMutableLeaves error:nil];\
    Log(@"HttpClientResponseObject-->%@",dic);\
    NSError *error = nil;\
    if (kDictIsEmpty(dic) == NO) {\
        PKG *model = [[PKG alloc]initWithString:[AYTool convertToJSONData:dic] error:&error];\
        if (error == nil) {\
            success(model);\
            Log(@"%@",model.msg);\
        }\
        else {\
            failure(-1,@"JSON解析错误");\
            Log(@"JSON解析错误");\
        }\
    }\
} failure:^(NSURLSessionDataTask * _Nonnull dataTask, NSError * _Nonnull error) {\
    if ([AFNetworkReachabilityManager sharedManager].reachable) {\
        failure(-1,@"请求失败,请检查网络连接");\
    }\
    else{\
        Log(@"%@",error);\
        failure(-1,@"");\
    }\
}];\

@implementation AYApiRequest

/** 注册 */
+ (void)registerSuccess:(void (^)(AY_BaseModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/register",kUrl];
    CREATE_POST(url, @{@"isRegister": @"1"}, AY_BaseModel);
}

/** 获取用户信息 */
+ (void)getUserInfoSuccess:(void (^)(AY_UserModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/info",kUrl];
    CREATE_GET(url, @{}, AY_UserModel);
}


/** 个人信息更新 */
+ (void)postUserInfoUpdate:(NSString *)update param:(NSString *)param updateType:(NSString *)updateType success:(void (^)(AY_UserUpdateModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/info/update",kUrl];
    CREATE_POST(url, (@{param:kStringUtils(update),
                        @"updateType":updateType}), AY_UserUpdateModel);
}

/** 获取书城频道列表 */
+ (void)getMallChannelSuccess:(void (^)(AY_titleSModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/mall/getMallChannel",kUrl];
    CREATE_GET(url, @{}, AY_titleSModel);
}

/** 获取频道下控件列表 */
+ (void)getMallChannelControlWithChannelId:(NSString *)channelId success:(void (^)(AY_ChannelModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/mall/getMallChannelControl",kUrl];
    CREATE_GET(url, @{@"channelId":channelId}, AY_ChannelModel);
}

/** 内容刷新 */
+ (void)getMallContentRefreshWithControlId:(NSString *)controlId success:(void (^)(AY_BookRefreshModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/mall/controlContentRefresh",kUrl];
    CREATE_GET(url, @{@"controlId":controlId}, AY_BookRefreshModel);
}

/** 上传文件、图片 */
+ (void)postCommonUploadType:(NSString *)uploadType andFileParam:(NSDictionary *)fileParam andFileData:(NSData *)fileData success:(void (^)(AY_UploadModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/common/upload",kUrl];
    CREATE_POST_FILE(url, @{@"uploadType": uploadType}, AY_UploadModel, fileParam, fileData);
}

/** 排行榜Home */
+ (void)getRankHomeConfigSuccess:(void (^)(AY_RankModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/billboard/list",kUrl];
    CREATE_GET(url, @{}, AY_RankModel);

}

/** 排行榜内容 */
+ (void)getRankBookListWithRankId:(NSString *)rankId Success:(void (^)(AY_RankModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/billboard/billboardData",kUrl];
    NSDictionary *dic = @{
        @"id" : kStringUtils(rankId),
    };
    CREATE_POST(url, dic, AY_RankModel);
}

/** 书籍详情 */
+ (void)getBookDetailWithBookId:(NSString *)bookId Success:(void (^)(AY_BookDetailModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/article/info",kUrl];
    NSDictionary *dic = @{
        @"articleId" : kStringUtils(bookId),
    };
    CREATE_GET(url, dic, AY_BookDetailModel);
}

/** 书架新增/更新 */
+ (void)addBookWithBookId:(NSString *)bookId andChapterNo:(NSString *)chapterNo andPageNo:(NSString *)pageNo Success:(void (^)(AY_BaseModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/upInsertArticleShelf",kUrl];
    NSDictionary *dic = @{
        @"articleId" : kStringUtils(bookId),
        @"chapterNo" : kStringUtils(chapterNo),
        @"pageNo" : kStringUtils(pageNo),
    };
    CREATE_POST(url, dic, AY_BaseModel);
}

/** 书架信息 */
+ (void)getBookSelfListSuccess:(void (^)(AY_BookSelfModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/articleShelf",kUrl];
    CREATE_GET(url, @{}, AY_BookSelfModel);
}

/** 书架历史 */
+ (void)getUserReadTimeRecordSuccess:(void (^)(AY_ReadHistoryModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/reader/userReadTimeRecord",kUrl];
    CREATE_GET(url, @{}, AY_ReadHistoryModel);
}

/** 书架小说删除 */
+ (void)getRemoveArticleShelfArticleIds:(NSString *)articleIds Success:(void (^)(AY_QiuBookModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/removeArticleShelf",kUrl];
    CREATE_GET(url, @{@"articleIds": kStringUtils(articleIds)}, AY_QiuBookModel);
}


/** 阅读时长新增/更新 */
+ (void)getUpInsertReadTime:(NSString *)readTime articleId:(NSString *)articleId Success:(void (^)(AY_QiuBookModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/reader/upInsertReadTime",kUrl];
    CREATE_POST(url, (@{@"articleId":kStringUtils(articleId),
                       @"readTime":kStringUtils(readTime),
                     }), AY_QiuBookModel);
}

/** 分类 value:0: 全部，1: 男，2：女;
*/
+ (void)getArticleCategoryListType:(NSString *)type Success:(void (^)(AY_SortModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/article/categoryList",kUrl];
    CREATE_GET(url, @{@"type":type}, AY_SortModel);
}

/** 小说搜索
    categoryId分类id
    wordType 字数限制 1=30万以下，2=30~50万，3=50万以上;
    articleStatus 1: 连载中，2：完结，3：停更
*/
+ (void)postArticleListByCategoryCategoryId:(NSString *)categoryId
                                  wordType:(NSString *)wordType
                             articleStatus:(NSString *)articleStatus
                                    pageNum:(NSString *)pageNum
                                   pageSize:(NSString *)pageSize
                                   Success:(void (^)(AY_CategoaryModel *pkg))success
                                   failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/article/queryArticleListByCategory",kUrl];
    CREATE_POST(url, (@{@"categoryId":kStringUtils(categoryId),
                        @"wordType":kStringUtils(wordType),
                        @"articleStatus":kStringUtils(articleStatus),
                        @"pageNum":kStringUtils(pageNum),
                        @"pageSize":kStringUtils(pageSize),
                      }), AY_CategoaryModel);
}

/** 获取章节 */
+ (void)getBookChapterListWithPageNum:(NSString *)pageNum andPageSize:(NSString *)pageSize andArticleId:(NSString *)articleId Success:(void (^)(AY_ChapterModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/article/chapterList",kUrl];
    NSDictionary *dic = @{
        @"pageNum" : kStringUtils(pageNum),
        @"pageSize" : kStringUtils(pageSize),
        @"articleId" : kStringUtils(articleId),
    };
    CREATE_POST(url, dic, AY_ChapterModel);
}

/** 获取章节内容 */
+ (void)getBookContentWithChapterId:(NSString *)chapterId andAuto:(NSString *)autob Success:(void (^)(AY_BookContentModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/reader/chapterInfo",kUrl];
    NSDictionary *dic = @{
        @"chapterId" : kStringUtils(chapterId),
        @"autoBuy" : kStringUtils(autob),
    };
    CREATE_GET(url, dic, AY_BookContentModel);
}


/** 获取资产列表内容 */
+ (void)getPackageProductListWithAssetType:(NSString *)assetType Success:(void (^)(AY_BookVpModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/package/productList",kUrl];
    NSDictionary *dic = @{
        @"assetType" : kStringUtils(assetType),
    };
    CREATE_GET(url, dic, AY_BookVpModel);
}

/** chase ---方式列表获取 */
+ (void)getPackagePymentTypeListSuccess:(void (^)(AY_PyChaseModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/package/paymentTypeList",kUrl];
    CREATE_GET(url, @{}, AY_PyChaseModel);
}


/** 用户签到详情查询 */
+ (void)getUserSignDetailSuccess:(void (^)(AY_SignModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/activity/getUserSignDetail",kUrl];
    CREATE_GET(url, @{}, AY_SignModel);
}

/** 用户签到*/
+ (void)getUserSignUpSuccess:(void (^)(AY_SignUpModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/activity/signUp",kUrl];
    CREATE_GET(url, @{}, AY_SignUpModel);
}

/** 搜索热词列表 */
+ (void)getSearchHotKeyWithLimit:(NSString *)limit Success:(void (^)(AY_SearchKeyModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/search/searchHotWords",kUrl];
    NSDictionary *dic = @{
//        @"limit" : kStringUtils(limit),
    };
    CREATE_GET(url, dic, AY_SearchKeyModel);
}

/** 获取签到任务活动明细 */
+ (void)getSignActivityItemsSuccess:(void (^)(AY_PaQianDModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/activity/getSignActivityItems",kUrl];
    CREATE_GET(url, @{}, AY_PaQianDModel);
}

/** 补签 */
+ (void)getBackSignUpSuccess:(void (^)(AY_SignUpModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/activity/backSignUp",kUrl];
    CREATE_GET(url, @{}, AY_SignUpModel);
}

+ (void)getUserAssetRecordListWithAssetType:(NSString *)assetType month:(NSString *)month success:(void (^)(AY_UserAssetModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/order/userAssetRecordList",kUrl];
    NSDictionary *dic = @{
        @"assetType" : kStringUtils(assetType),
        @"month": kStringUtils(month)
    };
    CREATE_GET(url, dic, AY_UserAssetModel);
}


/** 搜索推荐列表 */
+ (void)getSearchRecommengWithLimit:(NSString *)limit Success:(void (^)(AY_SearchModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/search/searchRecommend",kUrl];
    NSDictionary *dic = @{
//        @"limit" : kStringUtils(limit),
    };
    CREATE_GET(url, dic, AY_SearchModel);
}

/** 书城小说搜索 联想搜索 */
+ (void)getSearchThinkWithLimit:(NSString *)limit andQk:(NSString *)qk Success:(void (^)(AY_SearchKeyModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/search/searchThink",kUrl];
    NSDictionary *dic = @{
        @"searchType" : kStringUtils(limit),
        @"qk" : kStringUtils(qk),
    };
    CREATE_GET(url, dic, AY_SearchKeyModel);
}

/** 书城小说搜索指定关键字搜索 */
+ (void)getSearchBookListWithLimit:(NSString *)limit andQk:(NSString *)qk Success:(void (^)(AY_SearchModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/search/searchList",kUrl];
    NSDictionary *dic = @{
        @"searchType" : kStringUtils(limit),
        @"qk" : kStringUtils(qk),
    };
    CREATE_GET(url, dic, AY_SearchModel);
}

/** 求书
*/
+ (void)postWithArticleDemand:(NSString *)articleName
          articleLeadOrAuthor:(NSString *)articleLeadOrAuthor                                   Success:(void (^)(AY_QiuBookModel *pkg))success
                      failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/articleDemand",kUrl];
    CREATE_POST(url, (@{@"articleName":kStringUtils(articleName),
                        @"articleLeadOrAuthor":kStringUtils(articleLeadOrAuthor),
                      }), AY_QiuBookModel);
}

/** 小说推荐列表 */
+ (void)getBookRecommendListWithArticleId:(NSString *)articleId andLimit:(NSString *)limit Success:(void (^)(AY_AudioBookModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/article/recommendList",kUrl];
    NSDictionary *dic = @{
        @"limit" : kStringUtils(limit),
        @"articleId" : kStringUtils(articleId),
    };
    CREATE_GET(url, dic, AY_AudioBookModel);
}

/** 意见反馈 */
+ (void)postSuggestionSuggestionType:(NSString *)suggestionType content:(NSString *)content qqOrWx:(NSString *)qqOrWx mobile:(NSString *)mobile Success:(void (^)(AY_QiuBookModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/suggestion",kUrl];
    NSDictionary *dic = @{
        @"suggestionType" : kStringUtils(suggestionType),
        @"content" : kStringUtils(content),
        @"qqOrWx" : kStringUtils(qqOrWx),
        @"mobile" : kStringUtils(mobile),
    };
    CREATE_POST(url, dic, AY_QiuBookModel);
}

/** 创建 */
+ (void)createOrdeWithPymentType:(NSString *)pymentType productId:(NSString *)productId productName:(NSString *)productName articleId:(NSString *)articleId Success:(void (^)(AY_SignModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/createOrder",kUrl];
    NSUUID *uuid = [NSUUID UUID];
    NSDictionary *dic = @{
        @"paymentType" : kStringUtils(pymentType),
        @"productId" : kStringUtils(productId),
        @"productName" : kStringUtils(productName),
        @"articleId" : kStringUtils(articleId),
        @"requestId" : [uuid UUIDString],
    };
    CREATE_POST(url, dic, AY_SignModel);
}

/** 包配置获取 */
+ (void)APPConfigSuccess:(void (^)(AY_ConfigModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/package/config",kUrl];
    CREATE_GET(url, @{}, AY_ConfigModel);
}

/** 订单状态 */
+ (void)getOrderStatus:(NSString *)orderNo Success:(void (^)(AY_ConfigModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/queryOrderStatus",kUrl];
    NSDictionary *dic = @{
        @"orderNo" : kStringUtils(orderNo)
    };
    CREATE_GET(url, dic, AY_ConfigModel);
}

/** banner信息获取 */
+ (void)getBannerInfoWithCode:(NSString *)code Success:(void (^)(AY_BannerInfoModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/common/getBannerInfo",kUrl];
    NSDictionary *dic = @{
        @"code" : kStringUtils(code),
    };
    CREATE_GET(url, dic, AY_BannerInfoModel);
}

/** 今日阅读时长 */
+ (void)getTodayReadTimeSuccess:(void (^)(AY_TodayReadTimeModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/reader/userReadTotalTimeToday",kUrl];
    CREATE_GET(url, @{}, AY_TodayReadTimeModel);
}

/** 求书回复 */
+ (void)getQiuShuInfoSuccess:(void (^)(AY_QiuShuModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/articleDemandReply",kUrl];
    CREATE_GET(url, @{}, AY_QiuShuModel);
}

/** 标记求书请求已读 */
+ (void)readQiuShuSuccess:(void (^)(AY_BaseModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/markUserArticleDemandRead",kUrl];
    CREATE_GET(url, @{}, AY_BaseModel);
}

/** 小说催更 */
+ (void)cuiGengWithBookId:(NSString *)bookId Success:(void (^)(AY_BaseModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/rushArticle",kUrl];
    NSDictionary *dic = @{
        @"articleId" : kStringUtils(bookId),
    };
    CREATE_GET(url, dic, AY_BaseModel);
}

/** 用户阅读偏好更新 */
+ (void)genderWithFavoriteType:(NSString *)favoriteType Success:(void (^)(AY_BaseModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/user/updateFavorite",kUrl];
    NSDictionary *dic = @{
        @"favoriteType" : kStringUtils(favoriteType),
    };
    CREATE_POST(url, dic, AY_BaseModel);
}

/**  */
+ (void)getIsEditSuccess:(void (^)(AY_IsEditModel *pkg))success failure:(void (^)(int status,NSString *info))failure {
    NSString *url = [NSString stringWithFormat:@"%@api/app/package/getAppMode",kUrl];
    CREATE_GET(url, nil, AY_IsEditModel);
}
/**获取任务列表**/
+ (void)getTaskListWithSuccess:(void (^)(AY_TaskModel *pkg))success failure:(void (^)(int status,NSString *info))failure
{
    NSString *url = [NSString stringWithFormat:@"%@api/app/activity/taskList",kUrl];
    CREATE_POST(url, nil, AY_TaskModel);
}

/**任务提交*/
+ (void)taskCommitWithTaskId:(NSString *)taskId andWithTaskItemId:(NSString *)taskItemId andWithcommitParamJson:(NSString *)commitParamJson andWithSuccess:(void (^)(AY_CommitTask *pkg))success failure:(void (^)(int status,NSString *info))failure
{
    NSString *url = [NSString stringWithFormat:@"%@api/app/activity/taskCommit",kUrl];
    NSDictionary *dic = @{
        @"taskId" : kStringUtils(taskId),
    };
    CREATE_POST(url, (dic), AY_CommitTask);
}

/**推荐活动小说**/

+ (void)recommendTaskNovelWithSuccess:(void (^)(AY_BookRecommendModel *pkg))success failure:(void (^)(int status,NSString *info))failure
{
    NSString *url = [NSString stringWithFormat:@"%@api/app/activity/getRecommendArticle",kUrl];
    CREATE_GET(url, nil, AY_BookRecommendModel);
}
@end
